<?php
namespace app\admin\controller;
use phpmailer\phpmailer;
use think\Controller;
use think\Cookie;
use think\Db;
use think\Request;
use think\Session;

class Personal extends Controller
{



//    充值申请显示
    public  function request(){
        $a=Db::table("increase")->select();
        return view ("personal/show_money" ,["a"=>$a]);
    }

//    允许充值
    public function recharge_delete(){

//        pre($_GET);
        if(admin_power()){
        $increase=$_POST;
//        pre($_POST);
            $balance=  $a=Db::table('user')->where("id=".$increase["user_id"])->find();
            $date["balance"]=$increase["increase"]+$balance["balance"];
            Db::startTrans();
            if (Db::table('user')->where("id=".$increase["user_id"])->update($date)){

                $time=Db::table('increase')->where("id=".$_GET["id"])->find();//充值申请表
            if(Db::table('increase')->delete($_GET["id"])){
                $array["user_id"]=$increase["user_id"];
                $array["time"]= $time["time"];
                $array["increase"]=$increase["increase"];
                $array["state"]="充值";
            if(Db::table('recharge_record')->insert($array)){
                $content= $balance["username"]." 你好 你于".$time["time"]."充值了".$time["increase"]."已经到账  请查收  如有疑问  请反馈  谢谢";
                if($this->email($balance["email"],$content)  ){
                    Db::commit();
                    $this->success("充值成功",url("Personal/request"),0,2) ;
                }
            }else{
                Db::rollback();
                $this->error("充值失败1",url("Personal/request"),0,2) ;
            }
            }else{
                Db::rollback();
                $this->error("充值失败2",url("Personal/request"),0,2) ;
            }
            }else{
                Db::rollback();
                $this->error("充值失败3",url("Personal/request"),0,2) ;
            }
                }else{
            $this->error('您没有足够的权限！！');
            }
    }
//不予充值
    public function recharge_no(){
        if(admin_power()){
        $id= $_GET["id"];
        $user=Db::table('increase')->where("id",$id)->find();
        Db::table('increase')->delete($id);
        $email= Db::table('user')->field("email")->where("id",$user["user_id"])->find();

        if($this->email($email["email"],"你于".$user["time"]."充值了".$user["increase"]."失败  可能是钱太多了   请谅解")){
            $this->success("取消成功",url("personal/request"),0,1);
        }else{
            $this->error("取消失败",url("personal/request"),0,1);
        }
        }else{
            $this->error('您没有足够的权限！！');
        }
    }
    //账户余额显示
    public function wealth_show(){
        $a=Db::table("user_wealth")->select();
        $b=Db::query("select DISTINCT year from user_wealth");
//        dump($b);
//        exit;
        return view("personal/customer_wealth",["a"=>$a,"b"=>$b]);
    }
    //用户账户余额表删除
    public  function wealth_delete(){
        $id=$_REQUEST["id"];
        $b=Db::query("select DISTINCT year from user_wealth");
        Db::table("user_wealth")->delete($id);
        $a=Db::table("user_wealth")->select();
        return view("personal/customer_wealth",["a"=>$a,"b"=>$b]);

    }

//客户查询
    public function user_select(){
        pre($_POST);
        $a= $_POST["user_name"];
        $d=Db::query("select DISTINCT year from user_wealth");
        $c=$_POST["time"];
        if($a==null){
            $b= Db::table('user_wealth')->where([
                'year' =>  $c
            ])->select();
        }else{
            $b= Db::table('user_wealth')->where([
                'user_name'  =>  ['like',$a],
                'year' =>  $c,
            ])->select();
        }
        return view("personal/customer_wealth",["a"=>$b,"b"=>$d]);
    }

//    邮件发送方法
    public function email($email,$content){
//        $smtpserver = "smtp.163.com";//使用163邮箱服务器
//        $smtpserverport = 25;//163邮箱服务器端口
//        $smtpusermail = "13658041015@163.com";//你的163服务器邮箱账号
//        $smtpemailto = $email;//收件人邮箱
//        $smtpuser = "13658041015";//SMTP服务器的用户帐号//你的邮箱账号(去掉@163.com)
//        $smtppass = "ysjau93178624"; //SMTP服务器的用户密码//你的邮箱密码
//        $mailsubject = "在线学习网充值到账提醒";//邮件主题
//        $mailbody = $name." 你好 你于".$time."充值了".$money."已经到账  请查收  如有疑问  请反馈  谢谢";//邮件内容
//        $mailtype = "TXT";//邮件格式（HTML/TXT）,TXT为文本邮件
//        $smtp=new \smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
//        //是否显示发送的调试信息
//        //$smtp->debug = TRUE;
//        //发送邮件
//        return $smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);

//        $toemail =$email;//定义收件人的邮箱

        $mail = new PHPMailer();
        $mail->isSMTP();// 使用SMTP服务
        $mail->CharSet = "utf8";// 编码格式为utf8，不设置编码的话，中文会出现乱码
        $mail->Host = "smtp.163.com";// 发送方的SMTP服务器地址
        $mail->SMTPAuth = true;// 是否使用身份验证
        $mail->Username = "13689650044@163.com";//发送方的163邮箱用户名，就是你申请163的SMTP服务使用的163邮箱</span><span style="color:#333333;">
        $mail->Password = "19981020feng";// 发送方的邮箱密码，注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码！</span><span style="color:#333333;">
        $mail->SMTPSecure = "ssl";//<span><span style="color:#ff6666;">// 使用ssl协议方式</span><span style="color:#333333;">
        $mail->Port = 994;// 163邮箱的ssl协议方式端口号是465/994

        $mail->setFrom("13689650044@163.com","Mailer");// 设置发件人信息，如邮件格式说明中的发件人，这里会显示为Mailer(xxxx@163.com），Mailer是当做名字显示
        $mail->addAddress($email,'Wang');// 设置收件人信息，如邮件格式说明中的收件人，这里会显示为Liang(yyyy@163.com)
        $mail->addReplyTo("13689650044@163.com","Reply");// 设置回复人信息，指的是收件人收到邮件后，如果要回复，回复邮件将发送到的邮箱地址
        //$mail->addCC("xxx@163.com");// 设置邮件抄送人，可以只写地址，上述的设置也可以只写地址(这个人也能收到邮件)
        //$mail->addBCC("xxx@163.com");// 设置秘密抄送人(这个人也能收到邮件)
        //$mail->addAttachment("bug0.jpg");// 添加附件


        $mail->Subject = "这是一个测试邮件";// 邮件标题
        $mail->Body = $content;// 邮件正文
        //$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容，如果不支持Html方式，就会用到这个，基本无用
        return $mail->send();
    }
}